]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
dash: Disable animations during overview transitions
authorFlorian Müllner <fmuellner@gnome.org>
Tue, 30 Oct 2012 19:15:29 +0000 (20:15 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Mon, 12 Nov 2012 15:59:12 +0000 (16:59 +0100)
When updating the dash, we already avoid all animations while the
overview is hidden. However, as we are using Main.queueDeferredWork(),
updates may be deferred up to ~20 seconds while the overview is hidden.
If the overview is entered before a queued update has taken place, it
will be run immediately on map - as the overview is visible by then,
this means animating any outstanding changes.
Work around this by skipping animations during overview transitions as
well.

https://bugzilla.gnome.org/show_bug.cgi?id=686530

js/ui/dash.js

index d367aaac972b4533f5702b8749dde5926309011c..3bd376696a4b9c02e77659c5824b1d2de5ea4784 100644 (file)
@@ -637,8 +637,10 @@ const Dash = new Lang.Class({
             icon.setIconSize(this.iconSize);
 
             // Don't animate the icon size change when the overview
-            // is not visible or when initially filling the dash
-            if (!Main.overview.visible || !this._shownInitially)
+            // is transitioning, not visible or when initially filling
+            // the dash
+            if (!Main.overview.visible || Main.overview.animationInProgress ||
+                !this._shownInitially)
                 continue;
 
             let [targetWidth, targetHeight] = icon.icon.get_size();
@@ -762,8 +764,9 @@ const Dash = new Lang.Class({
         for (let i = 0; i < removedActors.length; i++) {
             let item = removedActors[i]._delegate;
 
-            // Don't animate item removal when the overview is hidden
-            if (Main.overview.visible)
+            // Don't animate item removal when the overview is transitioning
+            // or hidden
+            if (Main.overview.visible && !Main.overview.animationInProgress)
                 item.animateOutAndDestroy();
             else
                 item.destroy();
@@ -778,8 +781,9 @@ const Dash = new Lang.Class({
             return;
         }
 
-        // Don't animate item addition when the overview is hidden
-        if (!Main.overview.visible)
+        // Don't animate item addition when the overview is transitioning
+        // or hidden
+        if (!Main.overview.visible || Main.overview.animationInProgress)
             return;
 
         for (let i = 0; i < addedItems.length; i++)